{extend name="layout" /}

{block name="title"}
<title>自定义页面 - thinkPHP极速后台开发</title>
<meta name="title" content="自定义页面 - thinkPHP极速后台开发">
<meta name="keywords" content="自定义页面,php,后台开发包，thinkphp、easyadmin、admin,easy,thinkeasyadmin">
<meta name="description" content="自定义页面,实现自己特殊的业务;easyadmin灵活可定制的thinkphp的后台开发工具包,助你快速开发后台">
{/block}

{block name="main"}

<fieldset id="join" class="layui-elem-field">
    <legend>自定义一个页面</legend>
    <div class="layui-field-box">
        <p>跟 thinkphp 是没有什么区别的</p>
        <pre class="php">{literal}
#project\app\admin\controller\Category.php

namespace app\admin\controller;

class Category extends \easyadmin\controller\Admin
{
    public function my_page(){
        # 根据需求添加资源文件
        $resource = Resource::getInstance();
        $resource->appendCssFile('/js.js');
        $resource->appendJsFile('/css.css');

        # 根据需求设置面包屑
        $breadcrumb = new Breadcrumb();
        $breadcrumb->add('name', 'http://xxx.xxx.com');
        $breadcrumb->add('name2', 'http://xxx.xxx.com');




        return $this->fetch('category:my_page', [
            'name' => 'zhangSan',
            '__breadcrumb__' => $breadcrumb
        ]);
    }
}

{/literal}</pre>
    <p>完全自定义页面,空白页面</p>
        <pre class="html">{literal}
#project\app\admin\views\category\my_page.html

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    {$name}

&lt;/body&gt;
&lt;/html&gt;

{/literal}</pre>


        <p>使用 layout 页面</p>
        <pre class="php">{literal}
{extend name="@layout" /}


{block name="body"}
    后台首页
{/block}

{/literal}</pre>


        <p>继承列表页面</p>
        <pre class="php">{literal}
{extend name="@list:list" /}

{block name="title"}
    # 页面标题
    {$__page_name__}列表
{/block}

{block name="style"}
    # css 样式
{/block}


{block name="header_action"}
    # 添加按钮
    {if isset($addAction)}
        {$addAction}
    {/if}
{/block}

{block name="filter"}
    {if isset($table)}
        {$table->getFilter()}
    {/if}
{/block}


{block name="body"}
    {if isset($table)}
        # table foreach 输出
    {/if}
{/block}

{block name="pagination"}
    # 分页
    {if isset($table)}
        {$table->getPage()}
    {/if}
{/block}


{block name="body_script"}
    # 底部js
{/block}


{/literal}</pre>

        <p>继承添加页面</p>
        <pre class="php">{literal}
{extend name="@form:form" /}


{block name="body"}
   # 您的业务

{/block}

{block name="title"}{$__page_name__}{/block}
{block name="style"}{/block}
{block name="head_script"}{/block}
{block name="body_script"}{/block}
# 更多模块可查看 layout 文件
{/literal}</pre>

        <blockquote class="layui-elem-quote">{literal}{__block__}{/literal}标签默认会查找到 layout.html ; 如果多级继承后, 可直接把上级页面中的需要内容复制进来,然后实现自己的重写 </blockquote>

        <p>例如继承详情页面</p>
        <pre class="php">{literal}
{extend name="@show:show" /}


{block name="body"}
   您的业务
   {__block__}
   # 此处的 {__block__} 会查找到 layout.html 中的 {block name="body"}
   # 如果需要 show 页面中的 body ,可以吧 show 页面中的 body 内容复制到这里

{/block}

{block name="title"}{$__page_name__}{/block}
{block name="style"}{/block}
{block name="head_script"}{/block}
{block name="body_script"}{/block}
# 更多模块可查看 layout 文件
{/literal}</pre>
    </div>
</fieldset>

<fieldset class="layui-elem-field layui-field-title">
    <legend>模板文件编辑了不更新</legend>
    <div class="layui-field-box">
        thinkphp 的模板编译好了有缓存; 使用了模板继承 {literal}{block}{/literal}标签, 改了被继承的页面,可能需要删除编译好的模板缓存,runtime目录中;
    </div>
</fieldset>

{/block}
